package com.BD;

import java.util.ArrayList;

import com.Reporte_Evolutivo.Registro_Venta;
import com.Reporte_Evolutivo.Ventas;
import com.Tablas.Tabla_Canal;
import com.Tablas.Tabla_Consultas;
import com.Tablas.Tabla_Edad;
import com.Tablas.Tabla_Evento;
import com.Tablas.Tabla_Fechas;
import com.Tablas.Tabla_Promotor;
import com.Tablas.Tabla_PuntoVenta;
import com.Tablas.Tabla_Sexo;
import com.Tablas.Tabla_Ubigeo;
import com.Tablas.Tabla_Ventas;
import com.Tablas.Tabla_Zona;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class BD_RE extends SQLiteOpenHelper {
	
	private static final int DATABASE_VERSION = 1;	 
    // Database Name
    private static final String DATABASE_NAME = "DB_Re_v1"; 
    //NOMBRE DE LAS TABLAS
 
    private static final String TABLA_VENTAS = "Tabla_Ventas";

    
    private static final String KEY_anho = "anio";
    private static final String KEY_nomZona = "nombreZona";
    private static final String KEY_mes = "mes";
    private static final String KEY_nomMes = "nomMes";
    private static final String KEY_quincena = "quincena";
    private static final String KEY_semana = "semana"; 
    private static final String KEY_dia = "dia";
    private static final String KEY_monto="monto";

    
    
	public BD_RE(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

	@Override
	public void onCreate(SQLiteDatabase db) {
		
		String CREATE_TABLA_RE = "CREATE TABLE " + TABLA_VENTAS + "("
    			+ KEY_anho + " INTEGER,"
    			+ KEY_nomZona  + " TEXT,"
    			+ KEY_mes  + " TEXT,"
    			+ KEY_nomMes  + " INTEGER,"
    			+ KEY_quincena  + " INTEGER,"
    			+ KEY_semana  + " INTEGER,"
    			+ KEY_dia  + " INTEGER,"
    			+ KEY_monto + " REAL"
    			+ ")";
        db.execSQL(CREATE_TABLA_RE);
    }
	
	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

		
	}
	
	public void addRegistroVentas(Registro_Venta registro_Venta){
		SQLiteDatabase db = this.getWritableDatabase();		 
        ContentValues values = new ContentValues();
        values.put(KEY_anho , registro_Venta.getAnho()); 
        values.put(KEY_nomZona  , registro_Venta.getNomZona()); 
        values.put(KEY_mes  , registro_Venta.getMes());
        values.put(KEY_nomMes , registro_Venta.getNombreMes());
        values.put(KEY_quincena , registro_Venta.getQuincena());
        values.put(KEY_semana , registro_Venta.getSemana());
        values.put(KEY_dia , registro_Venta.getDia());
        values.put(KEY_monto , registro_Venta.getMonto());
        
        // Inserting Row
        db.insert(TABLA_VENTAS, null, values);
        db.close(); // Closing database connection 
      
               
    }

	
	
	public void borraTablaVentas() {
		SQLiteDatabase db = this.getWritableDatabase();
		db.delete(TABLA_VENTAS, null, null);
		
	}

	public ArrayList<Tabla_Zona> getZonas(String idEvento) {
		ArrayList<Tabla_Zona> arrayTz = new ArrayList<Tabla_Zona>();
		String nomZona;
		SQLiteDatabase db = this.getReadableDatabase();   
	    
	    Cursor cursor = db.rawQuery(" SELECT "+KEY_nomZona+" FROM "+TABLA_VENTAS+
	    		" GROUP BY "+KEY_nomZona, null);
        
        if (cursor.moveToFirst()) {
            do {
            	nomZona = cursor.getString(0);
            	Tabla_Zona tz = new Tabla_Zona(0, 0, nomZona);
            	arrayTz.add(tz);
            } while (cursor.moveToNext());
        }
		return arrayTz;
	}

	public ArrayList<Ventas> getVentasXDia() {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+","+KEY_quincena+
				", "+KEY_semana+", "+KEY_dia+", " +KEY_monto+
				" FROM "+TABLA_VENTAS+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes+","+KEY_quincena+
				", "+KEY_semana+", "+KEY_dia, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(5);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}

	public ArrayList<Ventas> getVentasXMes() {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+", " +KEY_monto+
				" FROM "+TABLA_VENTAS+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(2);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}

	public ArrayList<Ventas> getVentasXSemana() {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+","+KEY_quincena+
				", "+KEY_semana+", "+KEY_monto+
				" FROM "+TABLA_VENTAS+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes+","+KEY_quincena+
				", "+KEY_semana, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(4);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}

	public ArrayList<Ventas> getVentasXQuincena() {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+","+KEY_quincena+", "+KEY_monto+
				" FROM "+TABLA_VENTAS+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes+","+KEY_quincena, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(3);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}

	public ArrayList<Ventas> getVentasXDiaXZona(String nombZonaSpinner) {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+","+KEY_quincena+", "+KEY_nomZona+", "+KEY_monto+
				" FROM "+TABLA_VENTAS+" WHERE "+KEY_nomZona+"= \""+nombZonaSpinner+"\" "+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes+","+KEY_quincena+", "+KEY_nomZona, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(4);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}

	public ArrayList<Ventas> getVentasXSemanaXZona(String nombZonaSpinner) {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+","+KEY_quincena+", "+KEY_nomZona+
				", "+KEY_semana+", "+KEY_monto+
				" FROM "+TABLA_VENTAS+" WHERE "+KEY_nomZona+"= \""+nombZonaSpinner+"\" "+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes+","+KEY_quincena+
				", "+KEY_semana+", "+KEY_nomZona, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(5);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}

	public ArrayList<Ventas> getVentasXQuincenaxzONA(String nombZonaSpinner) {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+","+KEY_quincena+", "+KEY_nomZona+
				", "+KEY_monto+
				" FROM "+TABLA_VENTAS+" WHERE "+KEY_nomZona+"= \""+nombZonaSpinner+"\" "+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes+","+KEY_quincena+", "+KEY_nomZona, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(4);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}

	public ArrayList<Ventas> getVentasXMesxzONA(String nombZonaSpinner) {
		ArrayList<Ventas> ventas = new ArrayList<Ventas>();
		float monto;
		SQLiteDatabase db = this.getReadableDatabase();
		
		Cursor cursor = db.rawQuery(" SELECT "+KEY_anho+", "+KEY_mes+", "+KEY_nomZona+
				", "+KEY_monto+
				" FROM "+TABLA_VENTAS+" WHERE "+KEY_nomZona+"= \""+nombZonaSpinner+"\" "+
	    		" GROUP BY "+KEY_anho+", "+KEY_mes+", "+KEY_nomZona, null);
        
        if (cursor.moveToFirst()) {
            do {
            	monto = cursor.getFloat(3);
            	Ventas v = new Ventas(monto);
            	ventas.add(v);
            } while (cursor.moveToNext());
        }
		
		return ventas;
	}
	
}